#include <iostream>
using namespace std;
template<class ...Arg>
//Arg表示类型参数包，可以写n个类型
//arg表示函数参数包，可以写n个变量
void func(Arg ...arg){
    cout<<sizeof...(Arg)<<endl;
    cout<<sizeof...(arg)<<endl;
}
template<class T>
void func2(T t){
    cout<<t<<endl;
    return;
}
template<class ...Arg,class T>
void func2(T t,Arg ...arg){
    
    cout<<t<<endl;
    func(arg...);

}

#if 0
#endif
void test2(){
    func2(1,2.3,"h",true);
}
template <class T,class ...Arg>
T sum(T t){
    return t;
}

template <class T,class...Arg>
T sum(T t,Arg ...arg){
    return t+sum(arg...);
}
void test3(){

}
int main(int argc, char * argv[]){
    func();
    return 0;
}

